package com.elh.quicksort;

/**
 * @author liulei
 **/
public class QuickSort {



    public static void quickSort(int a[], int l, int r)
    {
        if (l < r)
        {
            int i,j,x;
            i = l;
            j = r;
            x = a[i];
            while (i < j)
            {
                while(i < j && a[j] > x)
                    j--; // 从右向左找第一个小于x的数
                if(i < j)
                    a[i++] = a[j];
                while(i < j && a[i] < x)
                    i++; // 从左向右找第一个大于x的数
                if(i < j)
                    a[j--] = a[i];
            }
            a[i] = x;
            quickSort(a, l, i-1); /* 递归调用 */
            quickSort(a, i+1, r); /* 递归调用 */
        }
    }

    public static void main(String[] args) {
        int[] numbers = {6,7,5,9,8};
        quickSort(numbers,0,numbers.length - 1);
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }
    }



}
